/*
 * Copyright (C) 2010 M. Hautle.
 * 
 * This file is part of SimpleEL.
 * 
 * SimpleEL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation, either version 3 of the License, or (at your option) any later version.
 * 
 * SimpleEL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public License along with SimpleEL. If not, see <http://www.gnu.org/licenses/>.
 */
package ch.simpleel.data;

import java.util.*;

/**
 * Interface of a bean
 * 
 * @author M. Hautle
 */
public interface IABean {

    /**
     * @return Returns the nested.
     */
    ABean getNested();

    /**
     * @param nested The nested to set.
     */
    void setNested(ABean nested);

    /**
     * @return Returns the flags.
     */
    byte getFlags();

    /**
     * @param flags The flags to set.
     */
    void setFlags(byte flags);

    /**
     * @return Returns the defined.
     */
    boolean isDefined();

    /**
     * @param defined The defined to set.
     */
    void setDefined(boolean defined);

    /**
     * @return Returns the age.
     */
    short getAge();

    /**
     * @param age The age to set.
     */
    void setAge(short age);

    /**
     * @return Returns the letter.
     */
    char getLetter();

    /**
     * @param letter The letter to set.
     */
    void setLetter(char letter);

    /**
     * @return Returns the value.
     */
    int getValue();

    /**
     * @param value The value to set.
     */
    void setValue(int value);

    /**
     * @return Returns the checkSum.
     */
    long getCheckSum();

    /**
     * @param checkSum The checkSum to set.
     */
    void setCheckSum(long checkSum);

    /**
     * @return Returns the saldo.
     */
    float getSaldo();

    /**
     * @param saldo The saldo to set.
     */
    void setSaldo(float saldo);

    /**
     * @return Returns the big.
     */
    double getBig();

    /**
     * @param big The big to set.
     */
    void setBig(double big);

    /**
     * @return Returns the name.
     */
    String getName();

    /**
     * @param name The name to set.
     */
    void setName(String name);

    /**
     * @return Returns the array.
     */
    short[] getArray();

    /**
     * @param array The array to set.
     */
    void setArray(short[] array);

    /**
     * @param date The date to set.
     */
    void setDate(Date date);

    /**
     * @return Returns the date.
     */
    Date getDate();

    /**
     * @return Returns the exceptional.
     * @throws Exception Just to check the handling of the caller
     */
    public String getExceptional() throws Exception;

    /**
     * @param exceptional The exceptional to set.
     * @throws Exception Just to check the handling of the caller
     */
    public void setExceptional(String exceptional) throws Exception;
}
